#pragma once

#include <compl.h>
typedef void chksum_t;
typedef void chkdata_t;
#define DECL_CHKSUM(name, chksum_type)    \
typedef chksum_type chksum_type##_chksum; \
SAI size_t sizeofchksum_##name ();\
SAI bool_t data2chksum_##name (chksum_type##_chksum *dst, chksum_type *src, size_t sz_dst, size_t sz_src);\
SAI bool_t chksum2data_##name (chksum_type *dst, chksum_type##_chksum *src, size_t sz_dst, size_t sz_src);


// CEFF_FTYPE(size_t, sizeofchksum, ());
// CEFF_FTYPE(bool_t, data2chksum, (chksum_t *dst, chkdata_t *src, size_t sz_dst, size_t sz_src));
// CEFF_FTYPE(bool_t, chksum2data, (chkdata_t *dst, chksum_t *src, size_t sz_dst, size_t sz_src));


#define CHKSUM_CEFF_ALL     sizeofchksum, data2chksum, chksum2data